perm filename ARPA.74B[DOC,TOB] blob
sn#125610 filedate 1974-10-17 generic text, type T, neo UTF8
00100 ROBOTICS
00200
00300 We have been concerned with building up advanced manipulation
00400 capabilities, and with representation and descriptive techniques
00500 which underlie both visual perception and programming of programmable
00600 assembly devices.
00700
00800 MANIPULATION
00900
01000 The robotics group has established leadership in manipulation and
01100 notes particularly advances in two arm synchronized manipulation, and
01200 in design of a new hand language for manipulation.
01300
01400 The completion last year of automated assembly of a water pump by
01500 Paul and Bolles [Bolles] marked a change in direction of manipulator
01600 research. In the previous phase of system building, Paul [Paul] had
01700 developed software for control of the Scheinman arm [Scheinman] using
01800 touch (one switch per finger with 10 gram sensitivity) and force
01900 (measured from joint motor currents, about 350 gram sensitivity).
02000 The pump assembly task showed the use of touch, force, tools, and
02100 vision in a complete system task. The new emphasis has been toward
02200 application of the system to programming of repetitive assembly
02300 tasks, and toward executing tasks chosen to develop new manipulation
02400 abilities.
02500
02600 Our conception of the assembly task as a planning task carried out
02700 once on a large system, and a small repetitive execution task seems
02800 suited to industrial assembly. The plan can be intelligently
02900 tailored to the individual task; the small system repeatedly executes
03000 a plan and modifies the plan at runtime to take into account part to
03100 part variations.
03200
03300 In order to provide this runtime modification it was necessary to
03400 move the arm solution routines from the planning stage to the runtime
03500 system and to communicate positions in terms of rectangular table
03600 coordinates instead of in terms of arm joint angles. By communicating
03700 part positions in terms of rectangular coordinates it was possible to
03800 translate and rotate sets of positions as necessary to adapt the
03900 manipulator to each actual part and its relative manipulator
04000 placement.
04100
04200 When this work was completed, Bolles programmed automatic assembly of
04300 the piston-crankshaft subassembly of a two-stroke gasoline engine,
04400 allowing considerable variation in work piece positioning. Bolles
04500 programmed tool changing. The arm automatically removes one tool and
04600 mounts another from a set of socket tools for an automatic tool
04700 driver. A second arm was interfaced to our computer. Paul developed
04800 a system in which two arms could be run in synchronization. He
04900 programmed assembly of a hinge, using two arms. (These examples are
05000 recorded in a film, [Pingle, Paul and Bolles, "Automated Assembly,
05100 Three Short Examples"]). To explore arm dynamics, Finkel programmed
05200 throwing objects into bins sorted by size.
05300
05400 These tasks were carried out in the hand language WAVE [Paul].
05500 Programming in a hand language gave a generality which might be
05600 described as: given that we had carried out one task, programming
05700 assembly of a similar object would be simple. For example,
05800 programming assembly of a generator would require about 10 hours
05900 work, following the pump assembly. A set of macros were developed
06000 which were applicable to a variety of tasks: put a pin in a hole,
06100 insert a screw. About 8 hours are required to program a macro of the
06200 complexity of inserting a screw. The hand language has made it simple
06300 to teach students how to program the arm. In a robotics course,
06400 students programmed "sword in stone", inserting a shaft into a hole.
06500 The language WAVE is on the level of assembler code.
06600
06700 In order to take advantage of more than one manipulator, it is
06800 necessary that the manipulators can be run simultaneously, either
06900 performing independent subtasks or acting together. The existing
07000 language, Wave, was not designed to incorporate parallel operation,
07100 and was inadequate to take advantage of the runtime modification
07200 feature already described. A new language was needed to specify
07300 structures and attachments of parts, and to provide a suitable syntax
07400 in which to express parallel operation. It was also necessary to
07500 incorporate general expression evaluation, including matrices and
07600 vectors. A new language design was undertaken to incorporate these
07700 features. Superficially, it resembles Algol, as it provides for
07800 structured programming and block structure.
07900
08000 Paul, Finkel, Bolles and Taylor have begun a new hand language, HAL.
08100 The effort began as a higher level language version of WAVE, to
08200 include coordinated motion of two arms. The design was broadened to
08300 include some strategy generation. The system is made partially
08400 model-based (versus procedure-based as WAVE, ALGOL, etc). Some
08500 degree of automatic generation of sequences for non-independent
08600 operations whose order is important, has been included in the design.
08700 In order to carry on the next stage of generalization beyond WAVE,
08800 the system must maintain models of its world. Consider modifying the
08900 pump assembly program to assemble a generator. An expert programmer
09000 is needed to modify the program, while for a model-based system, the
09100 engineer could input a new model (presumably from a previous design)
09200 and allow the system to do the low level interfacing. The system
09300 could not perform that interfacing if given only low level trajectory
09400 commands. We regard this system as a first level of model-based
09500 system. A major technical advance will be coordinated two arm
09600 motion, as opposed to independent two arm motion. An important part
09700 of the design process has been to express a number of tasks (gedanken
09800 experiments) in the new language. The design of HAL was
09900 three-fourths completed during the period of this progress report.
10000
10100 New work has gone into touch sensor development. A new sensor with
10200 adequate sensitivity and small size was built and tested by Perkins.
10300 The sensor seems adequate for use in task execution, but requires
10400 more development in packaging and mounting on usable fingers.
10500
10600 A new collision avoidance package has been programmed by Widdoes
10700 [Widdoes]. The package finds a collision-free path for the first
10800 three joints of the arm, using an interesting strategy. The
10900 previous collision avoidance program [Pieper] used a very local
11000 search around objects and was very time-consuming.
11100
11200 During the period covered in this report, we have begun conversion of
11300 arm hardware to a PDP-11/45 and begun converting to a new hand/eye
11400 table which allows room for two arm manipulation.
11500
11600
00100 VISION
00200
00300 The theme of our work in visual perception of complex objects has
00400 been DESCRIPTION AND NOT CLASSIFICATION. We have concentrated on
00500 building up capabilities for generating structured descriptions
00600 useful in a rich universe of objects. This project has been extended
00700 by Nevatia [Nevatia], with programs which recognize objects of the
00800 complexity of a doll, glove, toy horse, or hammer. The work has
00900 included new, stable hardware for the laser triangulation system
01000 [Agin]. The programs use depth data from the laser system, find
01100 boundaries of continuous surfaces, and make descriptions of armlike
01200 parts according to a representation based on "generalized cones"
01300 [Binford]. Other groups have begun to use special cases of such
01400 representations. The programs then make complete structured
01500 descriptions of objects as a part/whole graph of parts and relations
01600 of parts at joints. Compact summary descriptions are abstracted from
01700 complete object descriptions and used to index into a structured
01800 visual memory of models of previously seen objects to locate a
01900 subclass of model similar to the test object. The index procedure
02000 limits comparison of the test object description to relatively few
02100 models from memory, even with a large visual memory of many objects
02200 (although only about six objects were used). Models in memory were
02300 descriptions made by the program of previously seen objects,
02400 sometimes modified by hand. The learning ability of such a system is
02500 clear. An important feature of the description matching process is
02600 that it depends on generating structured symbolic descriptions of
02700 differences between test object description and the model.
02800
02900 The descriptions themselves are intuitively familiar for humans, so
03000 that the decisions of the program are easy to understand and debug.
03100 Although a great deal more work is necessary for that system, it
03200 represents a first and significant step in such description and
03300 recognition, particularly since it can tolerate moderate obscuration.
03400 The same techniques are applicable to edge images from TV data; they
03500 give good descriptive ability for that domain. However, that is only
03600 a small part of the necessary system for analysis of TV images and
03700 although useful, in no way resembles a solution to that complex
03800 problem.
03900
04000 It is difficult for humans to perform manipulation tasks from a
04100 single TV image, without stereo. We intend to make considerable use
04200 of stereo in applications of vehicle navigation and visual feedback
04300 for assembly. Hannah [Hannah] has demonstrated some techniques of
04400 stereo matching for stereo pairs with moderate stereo angle, 10
04500 degrees, without calibration information. By matching a minimum of
04600 six points in the two images, it was possible to obtain the relative
04700 calibration of the two cameras. Further search was limited by
04800 calibration informaion. Techniques were developed to match
04900 corresponding areas in outdoor pictures from features including
05000 color, mean and variance of intensity. A program was able to define
05100 regions bounded by depth discontinuities. Thomas and Pingle
05200 [Thomas] have appplied motion parallax to simple scenes. They limit
05300 attention to a few points defined by variance or edge measures. These
05400 points are tracked as the scene is rotated on a turntable, equivalent
05500 to moving the camera. The program requires only about 1 second per
05600 frame, using the SPS-41 computer. Although the research was performed
05700 on scenes of blocks, it is not limited to such scenes. The mechanism
05800 for selecting points of interesst would be inadequate for scenes with
05900 texture, however. Ganapathy [Ganapathy] has developed techniques for
06000 wide angle stereo matching in scenes of blocks. These programs use a
06100 variety of conditions of the form that planes remain planar under
06200 matching.
06300
06400 Bullock [Bullock] has made a systematic study of available operators
06500 for description of texture, and made a library of standard textures.
06600 His informal conclusions are that spatial domain descriptions are
06700 necessary, and that known techniques are very weak.
06800
06900 We have continued our study of techniques for visual feedback to deal
07000 with scenes with realistic contrast (not just black vs white) and
07100 with realistic complexity (curved objects). Perkins [Perkins] has
07200 made a program which finds corners for visual feedback in block
07300 stacking. Although block stacking itself is of little interest, the
07400 program is interesting for its ability to function with realistic
07500 contrast levels (no special preparation of scene) and interesting for
07600 its global edge finding strategy. Perkins also made a program which
07700 found elliptic curves among edge points from the Hueckel operator
07800 [Hueckel]. The program was able to identify cylinders.
07900
08000 Binford has made a beginning on a language for vision research.
08100 Previously, the laboratory has built a hand/eye monitor system
08200 [Feldman] to systematize cooperating routines at a job level; a
08300 library of simple procedures has been implemented [Pingle]. It has
08400 been found that the job level is too coarse to be useful for
08500 accomplishing our objectives: to allow research to build on
08600 previously built data structures and modules; to allow a common
08700 vocabulary. The new effort is not predominantly a system
08800 software effort, but a scientific effort, aimed at providing a
08900 language in which strategies can be expressed. Our experience is that
09000 it is difficult for humans to program in LISP or SAIL, and that we
09100 cannot reasonably expect strategy programs to be expressed at that
09200 low level of language. The language will be embedded in SAIL. Our
09300 previous work in representation of shape has been significant; now we
09400 are extending the study of representation to visual program
09500 structure, including intermediate internal structures. Our experience
09600 with the hand language is that this is a valuable step.
00100 ASSEMBLY STRATEGIES
00200
00300 Our work at programming manipulation sequences applies to programming
00400 the class of programmable assembly devices. The goal is to program
00500 at the level of assembly instruction manuals: insert shaft B into
00600 hole C. That is to go from a high level program to a program in
00700 terms of device motions, including force and control information.
00800 There is an enormous scope for such applications; the ease of
00900 programming assembly device is crucial to their wide application,
01000 from high volume special automation to low volume general purpose
01100 devices. The effort has produced outline programs for assembly of
01200 the water pump (without manipulation programming) by Taylor, and by
01300 Luckham [Luckham]. A typical sequencing task is to choose a sequence
01400 which does not involve putting down the tool and picking it up again
01500 in pulling out the guide pins and inserting screws to fasten the pump
01600 cover. As another facet of compatible sequences, semantic
01700 constraints such as x on y are translated into mathematical
01800 constraints; Taylor has progammed a linear constraint solution
01900 package to solve the resulting mathematical conditions.